iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
佛心分享-SideProject30

門外漢的嵌入式地獄系列 第 30

Day 30 。初入嵌入式開發- SPI SN74HCT595驅動開發

  • 分享至 

  • xImage
  •  

前言

同樣的為了方便測試,記得在 Yocto/build/local.conf 當中加上 spidev-test ,為了後續方便測試所使用。
同樣的也可以在初期提供一些簡易的讀寫功能來增加開發速度。

Kernel 修改

bitbake linux-stm32mp -c menuconfig
bitbake linux-stm32mp
確認 linux /arch/arm64/conf/defconfig 當中有沒有
CONFIG_SPI=y
CONFIG_SPI_DEBUG=y
CONFIG_SPI_SPIDEV=y
CONFIG_SPI_MASTER=y
CONFIG_SPI_SLAVE=y
CONFIG_SPI_STM32=y

設備樹範例

// Connect to 58100
&spi8 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&spi8_pins_a>;
	pinctrl-1 = <&spi8_sleep_pins_a>;
	cs-gpios = <&gpioz 6 0>;
	status = "okay";
	
	spidev@0 {
		compatible = "linux,spidev","rohm,dh2228fv";
		reg = <0>; /* CS #0 */
		spi-max-frequency = <4000000>;
		status = "okay";
	};
};

SN74HCT595

  • Pin Function
Qa Output
Qb Output
Qc Output
Qd Output
Qe Output
Qf Output
Qg Output
Qh Output
QH’ Output 串聯到其他的SN74HC
SRCLR Input , 用來一次清空所有輸出 , Low 時觸發
OE Output , Low 時觸發,正常應該要保持 low 才會輸出,但變成 high 時 不會輸出任何訊號
  • Function Table
SER SRCLK SRCLR RCLK OE 說明
x x x x H Qa-Qh 都是禁用的
x x x x L Qa-Qh 都是啟用的
x x L x x 所以的輸出 register 都會清空
L ^ H x x SRCLK(移位時鐘)上升沿到達時,移位寄存器的第一階段會設置為低電平(0)。其餘的階段會存儲前一階段的數據。
H ^ H x x First stage of the shift register goes high: 當 SRCLK 上升沿到達時,移位寄存器的第一階段會設置為高電平(1)。其餘的階段會存儲前一階段的數據。
x x H ^ x Shift-register data is stored in the storage register: 當 SRCLR 為高電平,RCLK(存儲時鐘)上升沿到達時,移位寄存器中的數據會被存儲到存儲寄存器中。
x ^ H ^ x Data in shift register is stored in the storage register, the data is then shifted through: 當 SRCLK 上升沿到達,RCLK 上升沿到達時,移位寄存器中的數據會被存儲到存儲寄存器中,然後數據會被移位。

邏輯

每當 SPI 的SCK發生上升沿時,數據位會被送到 (透過 MOSI) SER。每個 SCK 會將1 bit 移到Register 當中。

在傳送完所有的數據後,將 RCLK(LATCH2)設為HIGH ,將移位寄存器中的數據鎖到輸出寄存器中。之後就會顯示燈號了

Q0 是 LSB , Q7 是MSB

驗證驅動方式

lsmod | grep spidev

查看 /dev/ 底下是否有設備了

root@stm32mp1:~# ls /dev/spidev*
/dev/spidev0.0

指令驗證

# LED 會亮 不確定位啥 這一路應該是for58100
spidev_test -D /dev/spidev0.0 -s 4000000 -p "\x03\x00\x17" -v
while true; do spidev_test -D /dev/spidev0.0 -s 4000000 -p "\x01" -v; done

上一篇
Day 29 。初入嵌入式開發- I2C S35390A RTC驅動開發
系列文
門外漢的嵌入式地獄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言